home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
answers
/
alt
/
dec-faq
/
pdp8
< prev
next >
Wrap
Internet Message Format
|
1994-04-08
|
49KB
Path: bloom-beacon.mit.edu!hookup!swrinde!cs.utexas.edu!math.ohio-state.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news
From: jones@cs.uiowa.edu (Douglas W. Jones)
Newsgroups: alt.sys.pdp8,alt.answers,news.answers
Subject: PDP-8 Frequently Asked Questions (posted every other month)
Followup-To: alt.sys.pdp8
Date: 8 Apr 94 08:08:08 GMT
Organization: Computer Science, University of Iowa, Iowa City, Iowa, USA
Lines: 1015
Approved: news-answers-request@MIT.Edu
Distribution: world
Expires: 8 Jun 1994 08:08:08 GMT
Message-ID: <2o3m01$hnu@nexus.uiowa.edu>
NNTP-Posting-Host: pyrite.cs.uiowa.edu
Summary: Answers to common questions about antique DEC PDP-8 computers.
Those posting to alt.sys.pdp8 should read this.
Keywords: FAQ DEC PDP 8
Xref: bloom-beacon.mit.edu alt.sys.pdp8:744 alt.answers:2364 news.answers:17829
Archive-name: dec-faq/pdp8
Last-modified: Apr 7, 1994
This version of the alt.sys.pdp8 FAQ has been modified to conform to
RFC1153 USENET digest format (with exceptions due to the fact that it
is not really a digest). This should aid in automatic conversion of
this material to HTML and other interesting formats.
Contents:
What is this FAQ?
What is a PDP?
What is a PDP-8?
What is the PDP-8 instruction set?
What does PDP-8 assembly language look like?
What character sets does the PDP-8 support?
What different PDP-8 models were made?
What about the LINC-8 and PDP-12?
Where can I get a PDP-8 today?
Where can I get PDP-8 documentation?
What operating systems were written for the PDP-8?
What programming languages were supported on the PDP-8?
Where can I get PDP-8 software?
Where can I get additional information?
What use is a PDP-8 today?
Who's Who?
----------------------------------------------------------------------
Subject: What is this FAQ?
Frequently Asked Questions about the DEC PDP-8 computer.
By Douglas Jones, jones@cs.uiowa.edu
(with help from many folks)
The most recent version of this file is available by anonymous FTP from:
ftp://rtfm.mit.edu/pub/usenet/alt.sys.pdp8
ftp://sunsite.unc.edu/pub/academic/computer-science/history/pdp-8/docs
An obsolete version of this file is available on the Walnut Creek CDrom.
------------------------------
Subject: What is a PDP?
In 1957, Ken Olson and Harlan Anderson founded Digital Equipment
Corporation (DEC), capitalized at $100,000, and 70% owned by American
Research and Development Corporation. The founders wanted to call the
company Digital Computer Corporation, but the venture capitalists
insisted that they avoid the term Computer and hold off on building
computers. With facilities in an old woolen mill in Maynard
Massachusetts, DEC's first product was a line of transistorized digital
"systems modules", plug-in circuit boards with a few logic gates per
board. Starting in 1960, DEC finally began to sell computers (the
formal acceptance of the first PDP-1 by BBN is reported in Computers
and Automation, April 1961, page 8B). Soon after this, there were
enough users that DECUS, the Digital Equipment Computer User's Society
was founded.
DEC's first computer, the PDP-1, sold for only $120,000 at a time when
other computers sold for over $1,000,000. (A good photo of a PDP-1 is
printed in Computers and Automation, Dec. 1961, page 27). DEC quoted
prices as low as $85,000 for minimal models. The venture capitalist's
insistance on avoiding the term computer was based on the stereotype
that computers were big and expensive, needing a computer center and a
large staff; by using the term Programmable Data Processor, or PDP, DEC
avoided this stereotype. For over a decade, all digital computers sold
by DEC were called PDPs. (In early DEC documentation, plural form
"PDPs" is used as a generic term for all DEC computers.)
In the early 1960's, DEC was the only manufacturer of large computers
without a leasing plan. IBM, Burroughs, CDC and other computer
manufacturers leased most of their machines, and many machines were
never offered for outright sale. DEC's cash sales approach led to the
growth of third party computer leasing companies such as DELOS, a
spinoff of BB&N.
DEC built a number of different computers under the PDP label, with a
huge range of price and performance. The largest of these are fully
worthy of large computer centers with big support staffs. Many early
DEC computers were not really built by DEC. With the PDP-3 and LINC,
for example, customers built the machines using DEC parts and
facilities. Here is the list of PDP computers:
MODEL DATE PRICE BITS COMMENTS
===== ==== ======== ==== =====
PDP-1 1960 $120,000 18 DEC's first computer
PDP-2 NA 24 Never built?
PDP-3 NA 36 One built by a customer, not by DEC.
PDP-4 1962 $60,000 18 Predecessor of the PDP-7.
PDP-5 1963 $27,000 12 The ancestor of the PDP-8.
PDP-6 1964 $300,000 36 A big computer; 23 built, most for MIT.
PDP-7 1965 $72,000 18 Widely used for real-time control.
PDP-8 1965 $18,500 12 The smallest and least expensive PDP.
PDP-9 1966 $35,000 18 An upgrade of the PDP-7.
PDP-10 1967 $110,000 36 A PDP-6 followup, great for timesharing.
PDP-11 1970 $10,800 16 DEC's first and only 16 bit computer.
PDP-12 1969 $27,900 12 A PDP-8 relative.
PDP-13 NA Bad luck, there was no such machine.
PDP-14 A ROM-based programmable controller.
PDP-15 1970 $16,500 18 A TTL upgrade of the PDP-9.
PDP-16 1972 NA 8/16 A register-transfer module system.
Corrections and additions to this list are welcome! The prices given
are for minimal systems in the year the machine was first introduced.
The bits column indicates the word size. Note that the DEC PDP-10
became the DECSYSTEM-20 as a result of marketing considerations, and
DEC's VAX series of machines began as the Virtual Address eXtension of
the never-produced PDP-11/78.
It is worth mentioning that it is generally accepted that the Data
General Nova (see photo, Computers and Automation, Nov. 1968, page 48)
was originally developed as the PDP-X, a 16-bit multi-register version
of the PDP-8. A prototype PDP-X was built at DEC before the design was
rejected. This and a competing 16-bit design were apparently submitted
to Harold McFarland at Carnegie-Mellon University for evaluation;
McFarland (and perhaps Gordon Bell, who was at C-MU at the time)
evaluated the competing designs and rejected both in favor of what we
know as the PDP-11. One speculative explanation for Bell's rejection
of the design that became the Nova is that the competing proposal was
submitted using register-transfer notation, a notation he had introduced
in "Bell and Newell, Computer Structures -- Readings and Examples".
An alternate version of the story is that the reason that DEC never
produced a PDP-13 was because the number 13 was assigned to what became
the Nova; this is unlikely because the PDP-X prototype came before the
PDP-11. Both DEC and Data General are quiet about these stories.
Today, all of the PDP machines are in DEC's corporate past, with the
exception of the PDP-11 family of mini and microcomputers.
Of course, occasionally, some lab builds a machine out of DEC hardware
and calls it a PDP with a new number. For example, the Australian
Atomic Energy Commission once upgraded a PDP-7 by adding a PDP-15 on
the side; they called the result a PDP-22.
------------------------------
Subject: What is a PDP-8?
The PDP-8 family of minicomputers were built by Digital Equipment
Corporation between 1965 and 1990, although it is worth noting that the
term minicomputer first came into prominence in early 1968 (See the
Interdata ad in Computers and Automation, May 1968, page 10). The PDP-8
was largely upward compatable with the PDP-5, a machine that was
unveiled on August 11, 1963 at WESCON, and the inspiration for that
machine came from two earlier machines, the LINC and the CDC 160. All
of these machines were characterized by a 12 bit word with no hardware
byte structure, a 4K minimum memory configuration, and simple but
powerful instruction sets.
Although some people consider the CDC 160 the first minicomputer, the
PDP-8 was the definitive minicomputer. By late 1973, the PDP-8 family
was the best selling computer in the world, and it is likely that it was
only displaced from this honor by the Apple II (which was displaced by
the IBM PC). Most models of the PDP-8 set new records as the least
expensive computer on the market at the time of their introduction.
The PDP-8 has been described as the model-T of the computer industry
because it was the first computer to be mass produced at a cost that
just about anyone could afford.
C. Gordon Bell has said that the basic idea of the PDP-8 was not really
original with him. He gives credit to Seymour Cray (of CDC and later
Cray) for the idea of a single-accumulator 12 bit minicomputer. Cray's
CDC 160 family (see CACM, march 1961, photo on page 244, text on page
246) was such a machine, and in addition to the hundreds of CDC 160
systems sold as stand-alone machines, a derivative 12 bit architecture
was used for the I/O processors on Cray's first great supercomputer,
the CDC 6600.
Note that Cray's 12 bit machines had 6 basic addressing modes with
variable length instruction words and other features that were far from
the simple elegance of the PDP-8. Despite its many modes, the CDC
architecture lacked the notion of current page addressing, and the
result is that, for examples that don't involve indexing, PDP-8 code is
generally as tight as the code on Cray's machines.
------------------------------
Subject: What is the PDP-8 instruction set?
The PDP-8 word size is 12 bits, and the basic memory is 4K words. The
minimal CPU contained the following registers:
PC - the program counter, 12 bits.
AC - the accumulator, 12 bits.
L - the link, 1 bit, commonly prefixed to AC as <L,AC>.
It is worth noting that many operations such as procedure linkage and
indexing, which are usually thought of as involving registers, are done
with memory on the PDP-8 family.
Instruction words are organized as follows:
_ _ _ _ _ _ _ _ _ _ _ _
|_|_|_|_|_|_|_|_|_|_|_|_|
| | | | |
| op |i|z| addr |
op - the opcode.
i - the indirect bit (0 = direct, 1 = indirect).
z - the page bit (0 = page zero, 1 = current page).
addr - the word in page.
The top 5 bits of the 12 bit program counter give the current page, and
memory addressing is also complicated by the fact that absolute memory
locations 8 through 15 are incremented prior to use when used as indirect
addresses. These locations are called auto-index registers (despite the
fact that they are in memory); they allow the formulation of very tightly
coded array operations.
The basic instructions are:
000 - AND - and operand with AC.
001 - TAD - add operand to <L,AC> (a 13 bit value).
010 - ISZ - increment operand and skip if result is zero.
011 - DCA - deposit AC in memory and clear AC.
100 - JMS - jump to subroutine.
101 - JMP - jump.
110 - IOT - input/output transfer.
111 - OPR - microcoded operations.
The ISZ and other skip instructions conditionally skip the next
instruction in sequence. The ISZ is commonly used to increment a loop
counter and skip if done, and it is also used as an general increment
instruction, either followed by a no-op or in contexts where it is known
that the result will never be zero.
The JMS instruction stores the return address in relative word zero of
the subroutine, with execution starting with relative word one.
Subroutine return is done with an indirect JMP through the return
address. Subroutines commonly increment their return addresses to index
through inline parameter lists or to perform conditional skips over
instructions following the call.
The IOT instruction has the following form:
_ _ _ _ _ _ _ _ _ _ _ _
|1|1|0|_|_|_|_|_|_|_|_|_|
| | | |
| | device | op |
The IOT instruction specifies one of up to 8 operations on one of 64
devices. Typically (but not universally), each bit of the op field
evokes an operation, and these can be microcoded in left to right
order. Prior to the PDP-8/E, there were severe restrictions on the
interpretation of the op field.
As an example of the use of IOT instructions, consider the console
terminal interface. On early PDP-8 systems, this was always assumed to
be an ASR 33 teletype, complete with low-speed paper tape reader and
punch. It was addressed as devices 03 (the keyboard/reader) and 04
(the teleprinter/punch):
_ _ _ _ _ _ _ _ _ _ _ _
|1|1|0|_|_|_|_|_|_|_|_|_|
|0 0 0 0 1 1|0 0 1 - KSF - keyboard skip if flag
|0 0 0 0 1 1|0 1 0 - KCC - keyboard clear flag
|0 0 0 0 1 1|1 0 0 - KRS - keyboard read static
The keyboard flag is set by the arrival of a character. The KCC
instruction clears both the flag and the accumulator. KRS ors the 8 bit
input data with the low order 8 bits of AC. The commonly used KRB
instruction is the or of KCC and KRS. To await one byte of input, use
KSF to poll the flag, then read it with KRB.
_ _ _ _ _ _ _ _ _ _ _ _
|1|1|0|_|_|_|_|_|_|_|_|_|
|0 0 0 1 0 0|0 0 1 - TSF - teleprinter skip if flag
|0 0 0 1 0 0|0 1 0 - TCF - teleprinter clear flag
|0 0 0 1 0 0|1 0 0 - TPC - teleprinter print static
The teleprinter flag is set by the completion of the TPC operation (as
a result, on startup, many applications use TPC to print a null in order
to get things going). TCF clears the flag, and TPC outputs the low
order 8 bits of the accumulator. The commonly used TLS instruction is
the or of TCF and TPC. To output a character, first use TSF to poll the
flag, then write the character with TLS.
IOT instructions may be used to initiate data break transfers from block
devices such as disk or tape. The term "data break" was, for years,
DEC's preferred term for cycle-stealing direct-memory-access data
transfers.
Some CPU functions are accessed only by IOT instructions. For example,
interrupt enable and disable are IOT instructions:
_ _ _ _ _ _ _ _ _ _ _ _
|1|1|0|_|_|_|_|_|_|_|_|_|
|0 0 0 0 0 0|0 0 1 - ION - interrupts turn on
|0 0 0 0 0 0|0 1 0 - IOF - interrupts turn off
An interrupt was requested when any device raised its flag. The console
master clear switch would reset all flags and disable interrupts.
Effectively, an interrupt is a JMS instruction to location zero, with
the side effect of disabling interrupts. The interrupt service routine
would test flags and perform the operations needed to reset them, and
then return using ION immediately before the indirect return JMP. The
effect of ION is delayed so that interrupts are not enabled until after
the JMP.
The instructions controlling the optional memory management unit are
also IOT instructions. This unit allows the program to address up to
23K of main memory by adding a 3 bit extension to the memory address.
Two extensions are available, one for instruction fetch and direct
addressing, the other for indirect addressing.
A wide variety of operations are available through the OPR microcoded
instructions:
_ _ _ _ _ _ _ _ _ _ _ _
Group 1 |1|1|1|0|_|_|_|_|_|_|_|_|
1 - CLA - clear AC
1 - CLL - clear the L bit
1 - CMA - ones complement AC
1 - CML - complement L bit
1 - IAC - increment <L,AC>
1 0 0 - RAR - rotate <L,AC> right
0 1 0 - RAL - rotate <L,AC> left
1 0 1 - RTR - rotate <L,AC> right twice
0 1 1 - RTL - rotate <L,AC> left twice
In general, the above operations can be combined by oring the bit
patterns for the desired operations into a single instruction. If none
of the bits are set, the result is the NOP instruction. When these
operations are combined, they operate top to bottom in the order shown
above. The exception to this is that IAC cannot be combined with the
rotate operations on some models, and attempts to combine rotate
operations have different effects from one model to another (for example,
on the PDP-8/E, the rotate code 001 means swap 6 bit bytes in the
accumulator, while previous models took this to mean something like
"shift neither left nor right 2 bits").
_ _ _ _ _ _ _ _ _ _ _ _
Group 2 |1|1|1|1|_|_|_|_|_|_|_|0|
1 0 - SMA - skip on AC < 0 \
1 0 - SZA - skip on AC = 0 > or group
1 0 - SNL - skip on L /= 0 /
0 0 0 1 - SKP - skip unconditionally
1 1 - SPA - skip on AC >= 0 \
1 1 - SNA - skip on AC /= 0 > and group
1 1 - SZL - skip on L = 0 /
1 - CLA - clear AC
1 - OSR - or switches with AC
1 - HLT - halt
The above operations may be combined by oring them together, except that
there are two distinct incompatible groups of skip instructions. When
combined, SMA, SZA and SNL, skip if one or the other of the indicated
conditions are true (logical or), while SPA, SNA and SZL skip if all of
the indicated conditions are true (logical and). When combined, these
operate top to bottom in the order shown; thus, the accumulator may be
tested and then cleared. Setting the halt bit in a skip instruction is
a crude but useful way to set a breakpoint for front-panel debugging.
If none of the bits are set, the result is an alternative form of no-op.
A third group of operate microinstructions (with a 1 in the least
significant bit) deals with the optional extended arithmetic element to
allow such things as hardware multiply and divide, 24 bit shift
operations, and normalize. These operations involve an additional data
register, MQ or multiplier quotient, and a small step count register.
On the PDP-8/E and successors, MQ and the instructions for loading and
storing it were always present, even when the EAE was absent, and the
EAE was extended to provide a useful variety of 24 bit arithmetic
operations.
------------------------------
Subject: What does PDP-8 assembly language look like?
There are many different assemblers for the PDP-8, but most use a
compatable basic syntax; here is an example:
START, CLA CLL / Clear everything
TAD X / Load X
AND I Y / And with the value pointed to by Y
DCA X / Store in X
HLT / Halt
X, 1 / A variable
Y, 7 / A pointer
Note that labels are terminated by a comma, and comments are separated
from the code by a slash. There are no fixed fields or column
restrictions. The "CLA CLL" instruction on the first line is an example
of the microcoding of two of the Group 1 operate instructions. CLA
alone has the code 7200 (octal), while CLL has the code 7100; combining
these as "CLA CLL" produces 7300. As a general rule, except when memory
reference instructions are involved, the assembler simply ors together
the values of all blank separated fields between the label and comment.
Indirection is indicated by the special symbol I in the operand field,
as in the third line of the example. The typical PDP-8 assembler has no
explicit notation to distinguish between page zero and current page
addresses. Instead, the assembler is expected to note the page holding
the operand and automatically generate the appropriate mode. If the
operand is neither in the current page nor page zero, some assemblers
will raise an error, others will automatically generate an indirect
pointer to the off-page operand (This feature should be avoided!).
Note, in the final two lines of the example, that there is no "define
constant" pseudo-operation. Instead, where a constant is to be
assembled into memory, the constant takes the place of the op-code field.
The PDP-8 has no immediate addressing mode, but most assemblers provide
a notation to allow the programmer to ignore this lack:
TAD (3) / add 3, from memory on the current page.
TAD [5] / add 5, from memory on page zero.
JMP I (LAB) / jump indirect through the address of LAB.
Assemblers that support this automatically fill the end of each page
with constants defined in this way that have been accumulated during the
assembly of that page. Note that the variants "(3" and "[5" (with no
closing parentheses) are usually allowed but the use of this sloppy form
is discouraged. Furthermore, the widely used PAL8 assembler interprets
"(3)+1" as being the same as "(3+1)".
Arithmetic is allowed in operand fields and constant definitions, with
expressions evaluated in strict left-to-right order, as:
TAD X+1 / add the contents of the location after X.
TAD (X-1) / add the address of the location before X.
Other operators allowed included and (&), or (!), multiply (^) and divide
(%), as well as a unary sign (+ or -). Unfortunately, one of the most
widely used assemblers, PAL8, has trouble when unary operators are mixed
with multiplication or division.
Generally, only the first 6 characters of identifiers are significant
and numeric constants are evaluated in octal.
Other assembly language features are illustrated below:
/ Comments may stand on lines by themselves
/ Blank lines are allowed
*200 / Set the assembly origin to 200 (octal)
NL0002= CLA CLL CML RTL / Define new opcode NL0002.
NL0002 / Use new opcode (load 0002 in AC)
JMP .-1 / Jump to the previous instruction
X1= 10 / Define X1 (an auto-index register address)
TAD I X1 / Use autoindex register 1
IAC; RAL / Multiple instructions on one line
$ / End of assembly
The assembly file ends with a line containing a $ (dollar sign) not in
a comment field.
The $, * and = syntax used by most PDP-8 assemblers replace functions
performed by pseudo-operations on many other assemblers. In addition,
PAL8, the most widely used PDP-8 assembler supports the following
pseudo-operations:
DECIMAL / Interpret numeric constants in base 10
OCTAL / Interpret numeric constants in base 8
EJECT / Force a page eject in the listing
XLIST / toggle listing
PAGE / Advance location counter to next page
FIELD N / Assemble into extended memory field N
TEXT STRING / Pack STRING into consecutive 6 bit bytes
ZBLOCK N / Allocate N words, initialized to zero
IFDEF S <C> / Assemble C if symbol S is defined
IFNDEF S <C> / Assemble C if symbol S is not defined
IFZERO E <C> / Assemble C if expression E is zero
IFNZRO E <C> / Assemble C if expression E is not zero
Conditonally assembled code must be enclosed in angle brackets. The
enclosed code may extend over multiple lines.
------------------------------
Subject: What character sets does the PDP-8 support?
With its 12 bit word, the PDP-8 is somewhat awkward in its support for
modern 7 and 8 bit character sets. Nonetheless, from the beginning,
PDP-8 software has generally assumed that text I/O would be in 7 bit
ASCII. Most early PDP-8 systems used teletypes as console terminals;
as sold by DEC, these were configured for mark parity, so most older
software assumes 7 bit ASCII, upper case only, with the 8th bit set to
1. On output, lines are generally terminated with both CR and LF; on
input, CR is typically (but not always) the line terminator and LF is
typically ignored. In addition, the tab character (HT) is generally
interpreted in terms of a tab-stop every 8 spaces.
Most of the better engineered PDP-8 software tends to fold upper and
lower case on input, and it ignores the setting of the 8th bit. Older
PDP-8 software will generally fail when presented with lower case
textual input (this includes essentially all OS/8 products prior to
OS/278 V1).
Internally, PDP-8 programmers are free to use other character sets, but
the TEXT pseudo-operation strongly encourages the 6 bit character set
called "stripped ASCII". To map from upper-case-only ASCII to stripped
ASCII, each 8 bit character is anded with octal 77 and then packed 2
characters per word, left to right. Many programs use a semi-standard
scheme for packing mixed upper and lower case into 6 bit TEXT form;
this uses ^ to flip from upper to lower case or lower to upper case,
% to encode CR-LF pairs, and @ (octal 00) to mark end of string. Note
that this scheme makes no provision for encoding the %, ^ and @
characters, nor does it allow control characters other than the CR-LF
pair. The P?S/8 operating system supports text files in this form.
Files under the widely used OS/8 system consist of sequences of 256 word
blocks. When used for text, each block holds 384 bytes, packed 3 bytes
per pair of words as follows:
aaaaaaaa ccccaaaaaaaa
bbbbbbbb CCCCbbbbbbbb
ccccCCCC
Control Z is used as an end of file marker. Because most of the PDP-8
system software was originally developed for paper tape, binary object
code is typically stored in paper-tape image form using the above packing
scheme.
------------------------------
Subject: What different PDP-8 models were made?
The total sales figure for the PDP-8 family is estimated at over 300,000
machines. Over 7000 of these were sold prior to 1970. During the PDP-8
production run, a number of models were made, as listed in the following
table. Of these, the PDP-8/E is generally considered to be the
definitive machine. If the PDP-8 is considered to be the Model T of the
computer industry, perhaps the PDP-8/E should be considered to be the
industry's Model A.
MODEL DATES SALES COST TECHNOLOGY REMARKS
PDP-5 63-67 116 Transistor
PDP-8 65-69 1450 $18,500 Transistor
LINC-8 66-69 142 $38,500 Transistor
PDP-8/S 66-70 1024 $10,000 Transistor Very slow
PDP-8/I 68-71 3698 $12,800 TTL
PDP-8/L 68-71 3902 $8,500 TTL Scaled down 8/I
PDP-12 69-73? 3500? $27,900 TTL Followup to LINC-8
PDP-8/E 70-78 >10K? $7,390 TTL MSI Omnibus
PDP-8/F 72-78? >10K? <$7K TTL MSI Omnibus Based on 8/E CPU
PDP-8/M 72-78? >10K? <$7K TTL MSI Omnibus OEM version of 8/F
PDP-8/A 75-84? >10K? $1,317 TTL LSI Omnibus New CPU or 8/E CPU
VT78 78-80 <$10K Intersil IM6100 Workstation
DECmate I 80-84 Harris 6120 Workstation
DECmate II 82-86 $1,435 Harris 6120 Workstation
DECmate III 84-90 $2,695 Harris 6120 Workstation
DECmate III+85-90 Harris 6120 Workstation
Additional information is available in part two of this FAQ, where all
known models of the PDP-8, along with variants, alternate marketing
names, and other peculiarities are given.
The last years of the PDP-8 family were dominated by the PDP-8 compatable
microprocessor based VT78 and DECmate workstations. DEC also used the
Intersil IM6100 microprocessors in many peripheral controllers for the
PDP-11 and PDP-15. While all of the earlier PDP-8 systems were open
architecture systems, the DECmates had closed architectures with an
integrated console terminals and limited peripheral options.
The following PDP-8 compatible or semi-compatible machines were made and
sold by others; very little is known about many of these:
MODEL DATE MAKER, NOTES
MP-12 6? Fabritek (a surviving example runs FOCAL).
TPA 68? Hungarian, a PDP-8/L clone, ran FOKAL
Electrotechnica-100I ? Russian, a PDP-8/I? clone.
Saratov-2 ? Russian, a slow clone, perhaps PDP-8/S
Voronezh ? Russian, another PDP-8/? clone
SPEAR u-LINC ? SPEAR, Inc, Waltham Mass (a LINC clone!)
DCC-112 70-71 Digital Computer Controls
DCC-112H 71 Digital Computer Controls
6100 Sampler 7? Intersil, their IM6100 promotional kit
Intercept I 7? Intersil, based on IM6100
Intercept Jr 7? Intersil, based on IM6100
PCM-12 7? Pacific CyberMetrix, based on Intercept bus
PCM-12A 7? Pacific CyberMetrix, fixed to clock at 4MHz
SBC-8 84-88 CESI, Based on IM6120, SCSI bus
------------------------------
Subject: What about the LINC/8 and PDP-12?
Wesley Clark, then at Lincoln Labs, developed the LINC, or Laboratory
INstrumentation Computer, as a personal laboratory computer in the
early 1960's. He developed it in response to the needs of Mary Brazier,
a neurophysiologist at MIT who needed better laboratory tools. Over 24
LINC systems were built by customers before late 1964 when DEC began
selling a commercial version (see Computers and Automation, Nov. 1964,
page 43). By the time DEC introduced the LINC-8, 43 LINC systems had
been installed (see Computers and Automation, Mar. 1966, page 34).
When Lincoln Labs decided that the LINC did not fit their mission, a
group at the the National Institute of Health funded an experiment to
see if the LINC would be a productive tool in the life sciences. As a
result of this project, 12 LINCs were built and debugged, each by its
eventual user.
The LINC was the first 12 bit minicomputer built using DEC hardware.
Like the PDP-5 and other early DEC computers, it was built with system
modules, DEC's first family of logic modules. Along with the CDC 160,
it paved the way for the PDP-5 and PDP-8.
When compared with the PDP-8, the LINC instruction set was not as well
suited for general purpose computation, but the common peripherals
needed for lab work such as analog-to-digital and digital-to-analog
converters were all bundled into the LINC system. Users judged it to
be a superb laboratory instrument.
One of the major innovations introduced with the LINC was the LINCtape.
These tapes could be carelessly pocketed or dropped on the floor
without fear of data loss, and they allowed random access to data
blocks. DEC improved on this idea slightly to make their DECtape
format, and DECtape was widely used with all DEC computers made in the
late 1960's and early 1970's.
The motives behind the development of LINCtape were the same motivives
that led IBM to develop the floppy disk almost a decade later, and in
fact, DECtape survived as a widely used medium until DEC introduced the
RX01 8 inch floppy disk drive around 1975, and even after this, DECtape
was only slowly phased out.
Within a year of the introduction of the PDP-8, DEC released the LINC-8,
a machine that combined a PDP-8 with a LINC in one package. The
success of the LINC-8 led DEC to re-engineer the machine using TTL
logic in the late 1960's; the new version was originally to be called
the LINC-8/I, but it was sold as the PDP-12. Both the LINC-8 and the
PDP-12 had impressive consoles, with separate sets of lights and
switches for the LINC and PDP-8 halves.
The success of the LINC-8 also led to the development of a clone, the
SPEAR micro-LINC. This machine used Motorola MECL integrated circuits
and was available for delivery in (June 1965? this date must be wrong!).
The LINC-8 and PDP-12 could run essentially any PDP-8 or LINC program,
but because they had instructions for switching between modes, a body
of software was developed that required both modes.
One feature of LINC and LINC-8 software is the common use of the graphic
display for input-output. These machines were some of the first to
include such a display as a standard component, and many programs used
the knobs on the analog to digital converter to move a cursor on the
display in the way we now use a mouse.
LAP, the Linc Assembly Program, was the dominant assembler used on the
LINC. WISAL (WISconson Assembly Language) or LAP6-W was the version of
this assembler that survived to run on the PDP-12. Curiously, this
includes a PDP-8 assembler written in LINC code.
LAP6-DIAL (Display Interactive Assembly Language) evolved from this on
the PDP-12 to became the dominant operating system for the PDP-12. The
8K version of this is DIAL MS (Mass Storage), even if it has only two
LINCtape drives. These were eventually displaced by the OS/8 variant
known as OS/12.
------------------------------
Subject: Where can I get a PDP-8 today?
The CESI machine may still be on the market, for a high price, but
generally, you can't buy a new PDP-8 anymore. There are quite a few
PDP-8 machines to be found in odd places on the used equipment market.
They were widely incorporated into products such as computer controlled
machine tools, X-ray diffraction machines, and other industrial and lab
equipment. Many of them were sold under the EduSystem marketing
program to public schools and universities, and others were used to
control laboratory instrumentation. After about 1976, Reuters bought
as many as 10,000 OMNIBUS based machines per year, with perhaps 2000 per
year going to other customers.
If you can't get real hardware, you can get emulators. Over the years,
many PDP-8 emulators have been written; the best of these are
indistinguishable from the real machine from a software prespective,
and on a modern high-speed RISC platform, these frequently outperform
the hardware they are emulating.
Finally, you can always build your own. The textbook "The Art of
Digital Design," second edition, by Franklin Prosser and David Winkel
(Prentice-Hall, 1987, ISBN 0-13-046780-4) uses the design of a PDP-8 as
a running example. Many students who have used this book were required
to build working PDP-8 systems as lab projects.
------------------------------
Subject: Where can I get PDP-8 documentation?
Part II of this FAQ cites the key documents published by DEC describing
each model of the PDP-8. These are all out of print, and DEC was in the
habit of printing much of their documentation on newsprint with
paperback bindings, which is to say, surviving copies tend to be yellow
and brittle. DEC distributed huge numbers of catalogs and programming
handbooks in this inexpensive paperback format, and these circulate
widely on the second-hand market. When research laboratories and
electronics shops are being cleaned out, it is still common to find a
few dusty, yellowed copies of these books being thrown out.
Douglas Jones has made a small number of bound photocopies of DEC's
1973 introduction to programming, perhaps the definitive introduction
to the PDP-8, and the other early DEC handbooks need similar treatment
before they all crumble.
Maintenance manuals are harder to find, but more valuable. If you need
one, you usually need to find someone willing to photocopy one of the
few surviving copies. DEC has been friendly to collectors, granting
fairly broad letters of permission to reprint obsolete documentation,
and the network makes if fairly easy to find someone who has the
documentation you need and can get copies.
------------------------------
Subject: What operating systems were written for the PDP-8?
A punched paper-tape library of stand-alone programs was commonly used
with the smallest (diskless and tapeless) configurations from the
beginning up through the mid 1970's. Many paper tapes from this library
survive to the present at various sites! The minimum configuration
expected by these tapes is a CPU with 4K memory, and a teletype ASR 33
with paper tape reader and punch.
The DECtape Library System was an early DECtape oriented save and restore
system that allowed a reel of tape to hold a directory of named files
that could be loaded and run on a 4K system. Eventually, this supported
a very limited tape-based text editor for on-line program development.
This did not use the DECtape's block addressable character; the software
was based on minimal ports of the paper-tape based software described
above.
The 4K Disk Monitor System provided slightly better facilities. This
supported on-line program development and it worked with any device that
supported 129 word blocks (DECtape, the DF32 disk, or the RF08 disk).
MS/8 or the R-L Monitor System, was developed starting in 1966 and
submitted to DECUS in 1970. This was a disk oriented system, faster than
the above, with tricks to make it run quickly on DECtape based systems.
POLY BASIC was a BASIC only system submitted to DECUS and later sold by
DEC as part of its EduSystem marketing program.
P?S/8 was developed starting in 1971 from an MS/8 foundation. It runs
on minimal PDP-8 configurations, supports somewhat device independant
I/O and requires a random-access device for the file system (DECtape is
random-access!). P?S/8 runs compatably on most PDP-8 machines including
DECmates, excepting only the PDP-8/S and PDP-5. P?S/8 is still being
developed!
OS/8, developed in parallel with P?S/8, became the main PDP-8 programming
environment sold by DEC. The minimum configuration required was 8K words
and a random-access device to hold the system. For some devices, OS/8
requires 12K. There are a large number of OS/8 versions that are not
quite portable across various subsets of the PDP-8 family. OS/78 was
developed from OS/8 to support the DECmate I, and OS/278 was developed
for the later DECmate machines. These have unnecessary incompatabilities
with earlier versions of OS/8 and with pre-Omnibus machines. There are
also stories that DEC included code in either OS/8 or one of its
predecessors to make it incompatable with the DCC-112.
OS8 (no slash) may still be viable. It requires 8K of main memory, an
extended arithmetic unit, and DECtape hardware. Unlike most PDP-8
operating systems, it uses a directory structure on DECtape compatable
with that used on the PDP-10.
TSS/8 was developed in 1968 as a timesharing system. It required a
minimum of 12K words of memory and a swapping device. It was the
standard operating system on the EduSystem 50 which was sold to many
small colleges and large public school systems. Each user gets a
virtual 4K PDP-8; many of the utilities users ran on these virtual
machines were only slightly modified versions of utilities from the
Disk Monitor System or paper-tape environments.
Other timesharing systems developed for the PDP-8 include MULTI-8, ETOS,
MULTOS, and OMNI-8; some of these required nonstandard memory management
hardware. By the mid 1970's, some of these were true virtual machine
operating systems in the same spirit as IBM's VM-370; they typically
supported some version of OS/8 running on a 32K virtual PDP-8 assigned
to each user. Some could support different user operating systems on
each virtual machine, others supported addressing of more than 4K for
data, but limited code to field zero of a process's virtual memory.
CAPS-8 was a cassette based operating system supporting PAL and BASIC.
There are OS/8 utilities to manipulate CAPS-8 cassettes, and the file
format on cassette is compatible with a PDP-11 based system called
CAPS-11.
RTS/8 was a real-time system developed by DEC and shipped around 1978.
This was developed from an earlier system, SRT8, dating back to around
1974. Curiously, for a system developed so late, paper-tape and DECtape
were still supported by this system.
WPS was DEC's word processing system, developed on the 8/E and widely
used on the 1980's vintage machines with a special WPS keycaps replacing
the standard keycaps on the keyboard. It was heavily promoted on the
VT-78, and when the DECmates came out, DEC began to suppress knowledge
that DECmates could run anything else. WPS-11 was a curious distributed
system using a PDP-11 as a file server for a cluster of VT-78 WPS systems.
COS-310, DEC's commercial operating system for the PDP-8, supported the
DIBOL language. COS-310 was a derivative of MS/8 and OS/8, but with a
new text file format. The file system is almost the same as OS/8, but
dates are recorded differently, and a few applications can even run under
both COS and OS/8. COS was the last operating system other than WPS
promoted by DEC for the DECmates.
------------------------------
Subject: What programming languages are supported on the PDP-8
The PAL family of assembly languages, particularly PAL III and PAL8 are
as close to a standard assembly language as can be found for the PDP-8.
These produce absolute object code and there are versions of PAL for
minimally configured machines, although these have sever symbol table
limitations.
MACRO-8 was DEC's first macro assembly language for the PDP-8, but it
was rarely used outside the paper-tape environment. MACREL and SABR are
assembly languages that produce relocatable output. SABR is the final
pass for the ALICS II FORTRAN compiler, and MACREL was developed in
(unfulfilled) anticipation of similar use. MACREL was heavily used by
the DECmate group at DEC.
There was also RALF, the relocatable assembler supporting RTPS FORTRAN,
and FLAP, an absolute assembler derived from RALF. Both SABR and
RALF/FALP are assemblers that handle their intended applications but
have quirky and incompatible syntax.
A subset of FORTRAN was supported on both the PDP-5 and the original
PDP-8. Surviving documentation describes a DEC compiler from 1964 and
a compiler written by Information Control Systems from 1968. The
latter, ALICS II FORTRAN, was originally a paper tape based compiler,
but it forms the basis of the OS/8 8K FORTRAN compiler, and was also
adapted to the Disk Monitor System.
RTPS FORTRAN required 8K and a floating point processor; it had real-time
extensions and was a full implementation of FORTRAN IV (also known as
ANSI FORTRAN 66). OS/8 F4 is RTPS FORTRAN stripped of the requirement
for hardware floating point (if the hardware is missing, it uses
software emulation).
FOCAL, an interpretive language comparable to BASIC, was available on
all models of the family, including the PDP-5 and PDP-8/S. Varsions of
FOCAL run under PS/8, P?S/8 and other systems.
Many versions of BASIC were also available, from DEC and other sources.
DEC BASIC was widely used on PDP-8 systems sold under the EduSystem
marketing program. A paper-tape version was available that ran in 4K,
versions for OS/8 and TSS/8, an 8K stand-alone time-sharing version,
and others.
DIBOL was DEC's attempt at competing with COBOL in the commercial arena.
It was originally implemented under MS/8 but most versions were sold to
run under the COS operating system.
Algol was available from a fairly early date.
At least two Pascal compilers were developed for the PDP-8. One was a
Pascal-S interpreter, written in assembler, the other was a Pascal-P
compiler with a P-code interpreter written in assembler.
At least two LISP interpreters were written for the PDP-8; one runs in
4K, the other can use up to 16K.
POLY SNOBOL was a version of SNOBOL that was somewhere between
Griswald's definitions of SNOBOL 3 and SNOBOL 4.
TECO, the text editor, is available, and is also a general purpose
language, and someone is working on a PDP-8 C. The story of TECO on the
PDP-8 is convoluted. Russ Ham implemented TECO under his OS8 (without
a slash) system. This version of TECO was pirated by the Oregon Museum
of Science and Industry (OMSI), where the system was ported to PS/8.
Richard Lary and Stan Rabinowitz made it more compatible with other
versions of TECO, and the result of this work is the version distributed
by DECUS. RT-11 TECO for the PDP-11 is a port of this code.
------------------------------
Subject: Where can I get PDP-8 software?
DECUS, the DEC User Society, is still alive and well, and their submission
form still lists PAL8 and FOCAL as languages in which they accept
submissions! The DECUS library is available on-line by anonymous FTP:
ftp://acfcluster.nyu.edu/DECUS
To quote the README file from the current on-line catalog, "Items from
older DECUS Library catalogs are still also available (provided their
media can still be read), but machine readable catalog information is
not available for these." Direct questions by E-mail to
INFORMATION@DECUS.ORG.
The following anonymous FTP sites contain publically accessable archives
of PDP-8 software and other information:
ftp://ftp.telebit.com/pub/pdp8
ftp://ftp.update.uu.se/pub/pdp8
ftp://nickel.ucs.indiana.edu/pub/DEC/PDP8
ftp://sunsite.unc.edu/pub/academic/computer-science/history/pdp-8
The latter archive also maintains an archive of traffic in alt.sys.pdp8
in the directory ...pdp8/usenet and an archive of traffic in the
pdp8-lovers mailing list in .../pdp8/pdp8-lovers.
The archive at Indiana contains source code for many PDP-8 compilers and
interpreters, as well as common utilities and games.
------------------------------
Subject: Where can I get additional information?
The file WHAT-IS-A-PDP8, by Charles Lasner contains considerable
additional information; this file is available by ftp from:
ftp://ftp.telebit.com/pub/pdp8/WHAT-IS-A-PDP8
This file gives details of every PDP-8 model including the small quirks
and incompatabilities that (to be generous) allow software to determine
which model it is running on. These quirks also make it all too easy
for careless programmers to write almost portable software with very
obscure bugs.
The mailing list pdp8-lovers@ai.mit.edu reaches a number of PDP-8 owners
and users, not all of whom have USENET feeds. The USENET newsgroup
alt.sys.pdp8 needs to be gatewayed to this mailing list.
Many "archival" books have included fairly complete descriptions of the
PDP-8; among them, "Computer Architecture, Readings and Examples" by
Gordon Bell and Allen Newell is among the most accurate and complete
(but difficult to read).
------------------------------
Subject: What use is a PDP-8 today?
What use is a Model T today? Collectors of both come in the same basic
classes. First, there are antiquarians who keep an old one in the
garage, polished and restored to new condition but hardly ever used.
Once a year, they warm it up and use it, just to prove that it still
works, but they don't make much practical use of it.
PDP-8 systems maintained by antiquarians are frequently in beautiful
shape. Antiquarians worry about dust, chipped paint, and missing
switches, and they establish newsgroups and mailing lists to help them
locate parts and the advice needed to fix their machines.
In the second class are those who find old machines and soup them up,
replacing major parts to make a hotrod that only looks like the original
from the outside, or keeping the old mechanism and putting it to uses
that were never intended. Some PDP-8 owners, for example, have built
PDP-8 systems with modern SCSI disk interfaces! There is serious
interest in some quarters in constructing an omnibus board that would
support an IDE disk of the variety that was mass-produced for the
IBM PC/AT.
Last, there are the old folks who still use their old machines for their
intended purposes long after any sane economic analysis would recommend
such use. If it ain't broke, don't fix it, and if it can be fixed,
why bother replacing it? Both Model T Fords and the classic PDP-8
machines are simple enough that end users can maintain and repair them
indefinitely. All you need to keep a vintage -8 running are a stock
of inexpensive silicon diodes and a stock of 2N3639B or better,
2N3640 transistors.
Unlike most modern personal computers, PDP-8 systems were routinely sold
with complete maintenance manuals; these included schematic diagrams,
explanations of not only how to use the devices, but how they are built,
and suggestions to those considering building their own peripherals.
Compared with many so-called "open systems" of today, the PDP-8 was far
better documented and far more open.
Finally, the PDP-8 is such a minimal machine that it is an excellent
introduction to how computers really work. Over the years, many students
have built complete working PDP-8 systems from scratch as lab projects,
and the I/O environment on a PDP-8 is simple enough that it is a very
appropriate environment for learning operating system programming
techniques.
------------------------------
Subject: Who's Who?
C. Gordon Bell is generally credited with the original design of the
PDP-8. He was also involved with recommending what became the PDP-11
when that design was competing with the design that probably became the
NOVA, and as vice president of research, he oversaw the development of
the DEC VAX family.
Alan Kotok worked with Bell in working up the original specifications
of the PDP-8.
Ben Gurley designed most of the big DEC machines, starting with the
PDP-1. The actual design work on the -8, however, was done by Ed
deCastro, who later founded Data General to build the Nova.
Ken Olson ran DEC from the beginning.
Ed Yourdon, who later became well known as a programming methodology
guru, helped hack up the PAL III assembler for the -8 from PAL II.
Richard Merrill invented FOCAL and wrote the original (1968) and classic
FOCAL-69 interpreters for the PDP-8.
Charles Lasner developed P?S/8, and he is widely known as the grand old
man of the movement to preserve these historic machines.
Wesley Clark developed the LINC while working at Lincoln Labs; this was
the first 12 bit minicomputer built with DEC parts.
Mary Allen Wilkes Clark developed the early LAP programs for the LINC.
Douglas W. Jones wrote this FAQ, but prior to the summer of 1992, he'd
never used a PDP-8. He has also written a report on how to photocopy
and archivally bind ailing paperback books such as DEC's handouts, a
PAL-like cross assembler in C, and a UNIX-based PDP-8 emulator.
------------------------------
End of PDP-8 Frequently Asked Questions (posted every other month)
******************************************************************